Machine Learning

Machine Learning

Supervised learning(지도 학습)
Unsupervised learning(비지도 학습)
Reinforcement learning(강화학습)

    지도학습
레이블된 훈련 데이터에서 모델을 학습하여 본적없는 미래 데이터에 대하여 예 측

분류(classification): 클래스 레이블 예측
분류는 지도 학습의 하위 카테고리로 과거의 관측을 기반으로 새로운 샘플의 범주형 클래스 레이블을 예측하는 것이 목적임
스팸 메일 감지는 전형적인 이진분류(binary classifiaction)이다.

지도 학습 알고리즘을 통해 두 클래스를 구분할 수 있는 규칙을 학습한다.
규칙: 결정 경계(decision boundary)

두개 이상의 클래스 레이블이 존재할 경우 “다중 분류(multiclass classification)”을 이용할 수 있다.
손으로 쓴 글자 인식이 가장 전형적이 예시이다.
회귀(regression): 연속적인 출력 값 예측
분류 작업이 범주형 순서가 없는 레이블을 샘플에 할당하는 것이라면,
회귀는 연속적인 출력 값을 예측하는 분석이다.

예측변수 혹은 설명 변수(predictor variable or explanatory variable)와
연속적인 반응 변수 또는 결과(response variable or outcome)가 주어졌을 때,
출력 값을 예측하기 위한 두 변수 사이의 관계를 찾는다.
일반적으로 머신러닝 분야에서 예측변수를 특성(feature) 반응변수를 타깃(target)이라고 부른다.
선형 회기
특성 x와 타깃 y가 주어지면 데이터 포인트와 직선 사이 거리가 최소가 되는 직선을 그을 수 있다.
(일반적으로 평균 제곱 거리 사용) 이 직선의 기술기와 절편을 사용하여 새로운 데이터 출력 값을 예측
    강화 학습
강화 학습은 환경과 상호 작용하여 시스템 에이전트(agent) 성능을 향상하는 것이 목적이다.
강화 학습의 피드백은 정답(ground rate)의 레이블이나 값이 아닌, 보상 함수로 얼마나 행동이 좋은지 측정한 값이다.
에이전트는 환경과 상호 작용하여 보상이 최대화되는 일련의 행동을 강화 학습으로 학습한다.
시행착오(trial and error) 방식이나 신중하게 세운 계획을 사용한다.

강화 함수의 대표적인 예시는 체스 게임이다. 에이전트는 체스판의 상태(환경)에 따라 기물의 이동을 결정한다.
이 후 게임이 끝난 후 보상은 승리나 패배로 정의할 수 있다.

강화 학습의 다양한 형태가 있지만,
가장 일반적인 형태는 강화학습 에이전트가 환경과 상호작용한 후 보상을 최대화하는 것이다.
(보상은 전체 목표를 달성하는 것으로 정의할 수 있다.)
반복되는 학습은 양의 보상과 연결되는 게임과 음의 보상에 대하여 학습하고
지연된 피드백을 통하여서 얻은 전체 보상을 최대화 하는 일련의 행동을 학습한다.
    비지도 학습
비지도 학습은 레이블 되지 않거나 구조를 알 수 없는 데이터를 다룬다.
비지도 학습법을 이용하면 알려진 출력 값이나 보상 함수의 도움을 받지 않고 의미 있는 정보를 추출하기 위해
데이터 구조를 탐색할 수 있다.

비지도 학습은 예측이 목표가 아니라, 데이터 구성과 특징을 밝히는 것이 목적이다.
군집(clustering): 서브그룹 찾기
군집은 사전 정보 없이 쌓여 있는 그룹 정보를 의미 있는 서브그룹 또는 클러스터로 조직하는 탐색적 데이터 분석 기법이다.
분석 과정에서 어느정도 유사성을 공유하고 다른 클러스터와는 비슷하지 않은 샘플 그룹을 형성한다.

정보를 조직화하고, 데이터에서 의미 있는 관계를 유도하는 방법이다

예들 들어 마케터가 관심사를 기반으로 고객을 그룹으로 나누어 각각에 맞는 마케팅 프로그랭을 개발한다.

차원 축소(dimensionality reduction): 데이터 압축
잡음(noise) 데이터를 제거하기 위해 특성 전처리 단계에서 종종 적용하는 방법이다.
차원 축소를 통해 관련 있는 정보를 대부분 유지하면서 더 작은 차원을 가진 부분 공간(subspace)로 데이터를 압축할 수 있다.

이는 데이터 시각화에도 유용하다. 고차원 특성을 1차원 또는 2차원 3차원 특성 공간으로 투영해서 3D나 2D 산점도(scatterplot)나
히스토그램(histogram)으로 시각화 할 수 있다.
머신러닝의 코드를 효율적으로 구현하기 위해서 기초적인 선형대수학(Linear algebra)를 이용한다.